home *** CD-ROM | disk | FTP | other *** search
/ C/C++ Users Group Library 1996 July / C-C++ Users Group Library July 1996.iso / vol_400 / 424_02 / ED-157 / get_seldir.c < prev    next >
C/C++ Source or Header  |  1993-09-10  |  2KB  |  61 lines

  1. /*
  2.  * Copyright (C) 1992 by Rush Record (rhr@clio.rice.edu)
  3.  * 
  4.  * This file is part of ED.
  5.  * 
  6.  * ED is free software; you can redistribute it and/or modify it under the terms
  7.  * of the GNU General Public License as published by the Free Software Foundation.
  8.  * 
  9.  * ED is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
  10.  * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
  11.  * PARTICULAR PURPOSE.  See the GNU General Public License for more details.
  12.  * 
  13.  * You should have received a copy of the GNU General Public License along with ED
  14.  * (see the file COPYING).  If not, write to the Free Software Foundation, 675
  15.  * Mass Ave, Cambridge, MA 02139, USA.
  16.  */
  17. #include "opsys.h"
  18.  
  19. #include "rec.h"
  20. #include "window.h"
  21. #include "ed_dec.h"
  22.  
  23. /******************************************************************************\
  24. |Routine: get_seldir
  25. |Callby: edit output_file sort_recs trim word_fill
  26. |Purpose: Figures out in which direction the select marker lies.
  27. |Arguments:
  28. |    none
  29. \******************************************************************************/
  30. Int get_seldir()
  31. {
  32.     register rec_ptr forw,back;
  33.  
  34.     if(SELREC == CURREC)
  35.     {
  36.         if(SELBYT < CURBYT)
  37.             return(-1);
  38.         else if(SELBYT > CURBYT)
  39.             return(1);
  40.         else
  41.             return(0);
  42.     }
  43.     if(SELREC == BASE)
  44.         return(1);
  45.     if(CURREC == BASE)
  46.         return(-1);
  47.     forw = back = CURREC;
  48.     while(forw != SELREC && back != SELREC)
  49.     {
  50.         if((forw = forw->next) == BASE)
  51.             return(-1);
  52.         if((back = back->prev) == BASE)
  53.             return(1);
  54.     }
  55.     if(forw == SELREC)
  56.         return(1);
  57.     else
  58.         return(-1);
  59. }
  60.  
  61.